package filter

class LoginFilters {

	//filtraTudo(uri:'/**')
	
    def filters = {
        implementaLoginFilter(controller:'*', action:'*') 
		{
            before = 
			{	println "Executando before de implementaLoginFilter: ${controllerName} - ${actionName}"
				
				if("login".equals(controllerName))
				{
					println "No filtro - controller=login"
					return true
				}

				if (!session.usuario)
				{
					println "No filtro - Usuario nao esta na sessao - redirecionando para login/login"	

					if (controllerName != null && actionName != null)
					{	
						println "controle e action != null"
						// Para onde o usuário será redirecionado após o login
						session['controllerDestino'] = controllerName
						session['actionDestino'] = actionName
					}
					else
					{
						println "controle e action null"
						// Para onde o usuário será redirecionado após o login
						session['controllerDestino'] = 'virtualM'
						session['actionDestino'] = 'list'
					}
					
					redirect(controller: 'login', action: 'login')
                    return false
				}

				println "No filtro - Usuario esta na sessao"					
				return true
            }
            after = 
			{
				println "Executando after de implementaLoginFilter: ${controllerName} - ${actionName}"
            }
            afterView = 
			{
				println "Executando afterView de implementaLoginFilter: ${controllerName} - ${actionName}"
            }
        }

    }
}